#include <iostream>
#include <unistd.h>
#include <sys/types.h>
#include <signal.h>

using namespace std;

void handler(int signo)
{
    cout << "get a signal, number is: " << signo << endl;
    exit(100);
}

int main()
{   
    signal(SIGINT, handler); //handler(SIGINT)
    signal(SIGQUIT, handler); //handler(SIGINT)
    // 收到哪个信号,就会将这个信号作为参数传递给handler
    // signal调用完了,handler方法会被立即执行吗?不是,设置对象信号的处理方式
    // 未来我们收到对应的信号才执行handler方法
    // 未来进程永远没有收到SIGINT信号呢?handler永远不会被调用
    //signal(SIGINT, SIG_IGN); //handler(SIGINT)

    while(true)
    {
        cout << "I an active..., pid: " << getpid() << endl;
        sleep(1);
    }
    return 0;
}